﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace ACSR.Core.Processes
{
    //public enum ConsoleColor
    //{
    //    Yellow,
    //    Green,
    //    Red,
    //    White
    //}

    //public interface ICmdLineConsoleColorProvider
    //{
    //    void SetColor(ConsoleColor color);
    //}

    //public class StdCommandLineColorProvider : ICmdLineConsoleColorProvider
    //{
    //    [DllImport("kernel32.dll")]
    //    public static extern bool SetConsoleTextAttribute(IntPtr hConsoleOutput,
    //    int wAttributes);
    //    [DllImport("kernel32.dll")]
    //    public static extern IntPtr GetStdHandle(uint nStdHandle);
    //    IntPtr _hConsole;
    //    Dictionary<ConsoleColor, int> _colorMap;

    //    public StdCommandLineColorProvider()
    //    {
    //        uint STD_OUTPUT_HANDLE = 0xfffffff5;
    //        _hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    //        _colorMap = new Dictionary<ConsoleColor, int>();
    //        _colorMap[ConsoleColor.Yellow] = 6;
    //        _colorMap[ConsoleColor.Green] = 10;
    //        _colorMap[ConsoleColor.Red] = 12;
    //        _colorMap[ConsoleColor.White] = 15;
    //    }

    //    void PrintColors()
    //    {
    //        //SetConsoleTextAttribute(hConsole, 6); // warning
    //        // SetConsoleTextAttribute(_hConsole, 10); // green
    //        //SetConsoleTextAttribute(hConsole, 12); // red
    //        //SetConsoleTextAttribute(hConsole, 15); // normal
    //        for (int k = 1; k < 255; k++)
    //        {
    //            SetConsoleTextAttribute(_hConsole, k);
    //            Console.WriteLine("{0:d3} I want to be nice today!", k);
    //        }
    //        Console.ReadKey();
    //    }

    //    public void SetColor(ConsoleColor color)
    //    {
    //        int c = 15;
    //        if (_colorMap.TryGetValue(color, out c))
    //        {
    //            SetConsoleTextAttribute(_hConsole, c);
    //        }
    //    }
    //}
}
